package cn.edu.sgu.www.mhxysy.service.baoshi;

import cn.edu.sgu.www.mhxysy.dto.baoshi.BaoshiDTO;
import cn.edu.sgu.www.mhxysy.dto.baoshi.EquipmentBaoshiDTO;
import cn.edu.sgu.www.mhxysy.entity.baoshi.Baoshi;
import cn.edu.sgu.www.mhxysy.pager.baoshi.BaoshiPager;
import cn.edu.sgu.www.mhxysy.vo.baoshi.BaoshiVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author 沐雨橙风ιε
 * @version 1.0
 */
public interface BaoshiService {

	/**
	 * 宝石镶嵌
	 * @param equipmentBaoshiDTO 装备宝石信息
	 */
	@Transactional(rollbackFor = Exception.class)
	void inlay(EquipmentBaoshiDTO equipmentBaoshiDTO);

	/**
	 * 添加宝石
	 * @param baoshiDTO 宝石信息
	 */
	void insert(BaoshiDTO baoshiDTO);

	/**
	 * 通过ID删除宝石
	 * @param id 宝石ID
	 */
	void deleteById(String id);

	/**
	 * 通过ID修改宝石信息
	 * @param baoshiDTO 宝石信息
	 */
	void updateById(BaoshiDTO baoshiDTO);

	/**
	 * 通过ID查询宝石信息
	 * @param id 宝石ID
	 * @return Baoshi
	 */
	Baoshi selectById(String id);

	/**
	 * 分页查询宝石列表
	 * @param pager 分页参数
	 * @return Page<Baoshi>
	 */
	Page<Baoshi> selectByPage(BaoshiPager pager);

	/**
	 * 通过装备ID查询宝石类型图片
	 * @param equipmentId 装备ID
	 * @return List<Imager>
	 */
	List<BaoshiVO> selectDetails(String equipmentId);

	/**
	 * 通过装备ID查询宝石信息
	 * @param equipmentId 装备ID
	 * @return List<BaoshiVO>
	 */
	List<BaoshiVO> selectByEquipmentId(String equipmentId);

	/**
	 * 查询宝石列表
	 * @param roleId 角色ID
	 * @param equipmentId 装备ID
	 * @return List<BaoshiVO>
	 */
	List<BaoshiVO> selectList(String roleId, String equipmentId);
}